package com.ruoyi.app.service

import com.ruoyi.app.common.Data
import com.ruoyi.app.common.Page
import com.ruoyi.app.common.PageData
import com.ruoyi.app.domain.dto.AdvertisingSettingDto
import com.ruoyi.app.domain.vo.*
import com.ruoyi.back.domain.v3.StyleTypeEnum
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty

interface IndexApiService {


    @ApiModel("轮播参数")
    data class BannerVo(

        var id: Long? = null,

        @ApiModelProperty("描述词")
        var descText: String? = null,

        @ApiModelProperty("生成的图片")
        var pics: String? = null,

        @ApiModelProperty("点赞数")
        var likeNum: String? = null,
    )


    @ApiModel("精彩创作参数")
    data class WonderfulRecordVo(

        var id: Int? = null,

        @ApiModelProperty("描述词")
        var descText: String? = null,

        @ApiModelProperty("创建人")
        var createUsername: String? = null,

        @ApiModelProperty("风格类型 1.文生图 2.图生图 3.头像变卡通")
        var type: Int? = null,

        @ApiModelProperty("生成的图片")
        var pics: String? = null,

        @ApiModelProperty("尺寸信息")
        var resultConfig: String? = null,

        @ApiModelProperty("点赞数")
        var likeNum: Long? = 0,

        @ApiModelProperty("是否收藏")
        var collect: Boolean? = false,

        @ApiModelProperty("自己是否点赞")
        var like: Boolean? = false,
    )

    /**
     * 获取首页轮播列表
     */
    fun getBannerList(): Data<List<WonderfulRecordVo>>


    /**
     * 获取精彩创作列表
     */
    fun wonderfulRecord(pageNum: Long? = 1, pageSize: Long? = 10): Data<PageData<WonderfulRecordVo>>

    /**
     * 获取全局参数配置
     */
    fun getGlobalSetting(): Data<GlobalSetting>


    /**
     * 获取ios全局参数配置
     */
    fun getIosGlobalSetting(): Data<GlobalSetting>

    /**
     * 获取广告配置文件
     */
    fun getAdvertisingSetting(advertisingSettingDto: AdvertisingSettingDto): Data<AdvertisingSettingVo>

    /**
     * 提取短视频
     */
    fun resolveVideo(urlText: String): Data<List<VideoVo>>
}